#pragma once

#define MethodMapperOri(line, method, target) \
	std::string func##line(const std::string& req_body);\
	class IIS_push_str::Push push##line(func##line, method, target);\
	std::string func##line(const std::string& req_body)

#define PostMapperOri(line, target) MethodMapperOri(line, "POST", target)
#define PostMapper(target) PostMapperOri(__LINE__, target)


#define GetMapperOri(line, target) MethodMapperOri(line, "GET", target)
#define GetMapper(target) GetMapperOri(__LINE__, target)


#define DeleteMapperOri(line, target) MethodMapperOri(line, "DELETE", target)
#define DeleteMapper(target) DeleteMapperOri(__LINE__, target)


#define PutMapperOri(line, target) MethodMapperOri(line, "PUT", target)
#define PutMapper(target) PutMapperOri(__LINE__, target)


#define PatchMapperOri(line, target) MethodMapperOri(line, "PATCH", target)
#define PatchMapper(target) PatchMapperOri(__LINE__, target)